This invention relates to the field of systems analysis and planning, and in particular to server consolidation and virtualization through performance analysis, modeling, and prediction.
The increase in processing power and storage available in computer devices and systems has initiated a resurgence in ‘central processing systems’, where multiple tasks are serviced on a number of servers, each server being time-shared among different tasks. Simple time-sharing, however, can lead to interaction problems, particularly if one of the time-shared tasks exhibits abnormal behavior and interferes with the other tasks, or causes the computer system to shut down.
The concept of “virtual machines (VMs)” was pioneered in the mid-1960s by IBM and MIT. A ‘main-frame computer’ was partitioned into individual ‘virtual machines’, each virtual machine appearing to each user, or group of users, as an independent entity, and each virtual machine being protected from tasks running on other virtual machines. As the concept has progressed, the term “virtualization” is generally used to describe the dividing of resources of a computer into multiple execution environments, using such techniques as hardware and software partitioning, time-sharing, machine emulation, and so on.
As computers become increasingly more capable, the concept of sharing resources among multiple users is likely to increase, particularly in computing-intensive environments, such as universities, government organization, mid to large corporations, and so on. To be effective, such environments require effective management of the shared resources, to balance workloads and/or assure sufficient performance to particular tasks.
In a typical multi-computer shared environment, the management of virtualized resources generally requires satisfying particular performance expectations. In some instances, a specified service level is guaranteed in a ‘service level agreement’ (SLA), which provides at least a minimum level of service, and either limits the service to a specified performance level or provides as much performance above the specified limit as is available at the time; in other instances, all users are given equal priority, and are promised as much performance as is available at the time, without any guarantees, but with the hope of being provided an average performance that substantially exceeds an estimated minimal performance. In other situations, users acquire a particular number of ‘shares’ of the available resources, and a weighted priority scheme is used, allocating resources based on the number of acquired shares, the weighted allocation being based on either the total number of shares allocated, or the total number of shares that are currently allocated to active tasks. Such allocation rules and methods are generally referred to as ‘priority schemes’.
The effective and efficient management of a virtual system requires an effective and efficient allocation of virtual machines to actual computers to optimize the processing resources that are provided to the various users of the virtual machines and/or to optimize user satisfaction, based on each user's acquired share of the available resources. As used herein, ‘acquired share’ refers to the relative share of resources that are expected to be provided to the particular user, and may be based on a purchase of such shares, an allocation of shares based on the particular task being performed, an allocation of shares based on a status of the particular user or particular task, and/or any other scheme for prioritizing each user's allocation of available resources.
This allocation of resources, even among equal shareholders, however, is not a simple linear allocation. If two virtual machines are running on a computer, the allocation of processing to the virtual machines will not be equal to the total processing capabilities of the computer, because some processing will be consumed by the application (“virtualization technology”) that is providing the segregation of the available processing between the two tasks. As the number of virtual machines on the computer increases, the loss of available processing due to the overhead associated with providing the virtualization scheme increases, in some cases resulting in an overhead loss of 15% or more of the processing available to the virtual machines.
The aforementioned overhead loss is not solely dependent upon the number of virtual machines running on a particular computer. Other factors, such as the technology used to provide the virtualization, the utilization of resources by each task on each virtual machine, the number of physical processors on the computer, the priority associated with each task, and so on, will affect the efficiency with which the virtualization process will perform.
A variety of competing virtualization technologies are currently available, including, for example, Hyper-threaded Processor, VMware ESX, AIX Micropartition, Microsoft Virtual Machine Technology, Sun N1, HP nPar, vPar, and IBM PR/SM, each potentially producing different overhead losses under different conditions, and as the use of virtualization increases, the number of available virtualization technologies can be expected to increase. As with most competing technologies, each virtualization technology appears to have certain advantages and disadvantages, and no single virtualization technology can be said to be ideal for any and all combinations of task allocations. Selecting the appropriate virtualization technology for a given environment, or selecting the appropriate set of virtualization technologies to satisfy different groups of tasks in a given environment, is becoming increasingly difficult for managers of large computing facilities.
Satisfying the requirements for effective and efficient virtualization allocation is further complicated by the dynamic nature of most computing environments. With advances in computing technology, it is rare for a computing environment to remain static for even a year. As new computing systems are introduced and older computing systems removed from service, the allocation of resources in a virtual environment becomes increasingly complicated.
It can be expected, for example, that as virtualization becomes more prevalent, the design of future high-performance computing systems will include features targeted to virtual systems, generally to reduce the virtualization overhead for all configurations, or to minimize the virtualization overhead within a particular band of configurations. In like manner, it can be expected that current virtualization technologies will advance, and new virtualization technologies will be introduced. As can correspondingly be expected, the reallocation of virtual machines among computing systems, as existing systems are replaced by other systems and configurations having different virtualization performance characteristics, will often be a very daunting task.
It would be advantageous to provide a virtualization management system that facilitates the allocation of virtual machines among multiple computer systems. It would also be advantageous to estimate the overhead losses associated with a given allocation of virtual machines among multiple computer systems.
These advantages, and others, can be realized by an interactive virtualization management system that provides an assessment of proposed or existing virtualization schemes. A Virtual Technology Overhead Profile (VTOP) is created for each of a variety of configurations of host computer systems and virtualization technologies by measuring the overhead experienced under a variety of conditions. The multi-variate overhead profile corresponding to each target configuration being evaluated is used by the virtualization management system to determine the overhead that is to be expected on the target system, based on the particular set of conditions at the target system. Based on these overhead estimates, and the parameters of the jobs assigned to each virtual machine on each target system, the resultant overall performance of the target system for meeting the performance criteria of each of the jobs in each virtual machine is determined, and over-committed virtual machines and computer systems are identified.
Throughout the drawings, the same reference numerals indicate similar or corresponding features or functions. The drawings are included for illustrative purposes and are not intended to limit the scope of the invention.